package com.example.viewclick;

import androidx.appcompat.app.AppCompatActivity;

import android.graphics.Color;
import android.graphics.Paint;
import android.os.Bundle;

import com.github.mikephil.charting.charts.BarChart;
import com.github.mikephil.charting.charts.LineChart;
import com.github.mikephil.charting.charts.PieChart;
import com.github.mikephil.charting.components.Description;
import com.github.mikephil.charting.components.XAxis;
import com.github.mikephil.charting.data.BarData;
import com.github.mikephil.charting.data.BarDataSet;
import com.github.mikephil.charting.data.BarEntry;
import com.github.mikephil.charting.data.Entry;
import com.github.mikephil.charting.data.LineData;
import com.github.mikephil.charting.data.LineDataSet;
import com.github.mikephil.charting.data.PieData;
import com.github.mikephil.charting.data.PieDataSet;
import com.github.mikephil.charting.data.PieEntry;
import com.github.mikephil.charting.formatter.DefaultAxisValueFormatter;
import com.github.mikephil.charting.formatter.IAxisValueFormatter;
import com.github.mikephil.charting.interfaces.datasets.IBarDataSet;
import com.github.mikephil.charting.interfaces.datasets.ILineDataSet;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


          initbar();
        //initView();
        //initchart();
    }
//    private void initView(){
//        //获取列表
//        LineChart lineChart=findViewById(R.id.line_chart);
//        //无背景网络
//        lineChart.setDrawGridBackground(false);
//        lineChart.setDrawBorders(false);
//        Description description=new Description();
//        //描述內容
//        description. setText("折线图标题");
//        //描述字体颜色
//        description.setTextColor(0xff000000);
//        //描述字体⼤⼩
//        description.setTextSize(24f);
//        //⽂字左对⻬
//        description.setTextAlign(Paint.Align.LEFT);
//        //设置图表描述
//        description.setPosition(100,100);
//        lineChart.setDescription(description);
//        /*2.获取坐标轴并进⾏设置*/
//        //获取和设置X轴
//        XAxis xAxis = lineChart.getXAxis(); //获取X轴对象
//        xAxis.setEnabled(true); //设置显示X轴
//        xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);//X轴位置
//        xAxis.setAxisLineWidth(2);//设置X轴宽度
//        xAxis.setDrawGridLines(false);//⽆⽹格
//        xAxis.setDrawAxisLine(true);//显示X轴
//        /*X轴数据*/
//        final String[] xValues = {"3.14","3.15","3.16","3.17","3.18","3.19","3.20"};
//        /*给X轴设置数据*/
//        DefaultAxisValueFormatter formatter = new DefaultAxisValueFormatter(xValues.length);
//        xAxis.setValueFormatter(formatter);
//        /*3.添加数据*/
//        //Entry就是折线图上的点
//        ArrayList<Entry> entries1 = new ArrayList<>();
//        entries1.add(new Entry(0,85));
//        entries1.add(new Entry(1,84));
//        entries1.add(new Entry(2,86));
//        entries1.add(new Entry(3,83));
//        entries1.add(new Entry(4,84));
//        ArrayList<Entry> entries2 = new ArrayList<>();
//        entries2.add(new Entry(0,75));
//        entries2.add(new Entry(1,76));
//        entries2.add(new Entry(2,75));
//        entries2.add(new Entry(3,74));
//        entries2.add(new Entry(4,75));
//        /*LineDataSet是点的集合，连成线*/
//        LineDataSet lineDataSet1 = new LineDataSet(entries1,"Line1");
//        //设置折线颜⾊
//        lineDataSet1.setColor(0xff3f51b5);
//        LineDataSet lineDataSet2 = new LineDataSet(entries2,"Line2");
//        //设置折线颜⾊
//        lineDataSet2.setColor(0xffff4081);
//        /*线条的集合（可以添加多条线）*/
//        List<ILineDataSet> dataSets = new ArrayList<>();
//        dataSets.add(lineDataSet1);
//        dataSets.add(lineDataSet2);
//        /*要给Chart设置的数据（将dataSets作为数据对象）*/
//        LineData lineData = new LineData(dataSets);
//        lineChart.setData(lineData);//设置数据
//        lineChart.invalidate();//刷新显示
//    }
//    private void initchart(){
//        PieChart pieChart=findViewById(R.id.pie_chat);
//        //1.设置饼状图内容，注意饼状图总数尽量保证100%，即PieEntry(百分⽐, 内容名称)
//        List<PieEntry> strings = new ArrayList<>();
//        strings.add(new PieEntry(30f,"aaa"));
//        strings.add(new PieEntry(70f,"bbb"));
//        //2.设置饼状图描述
//        PieDataSet dataSet = new PieDataSet(strings,"Label");
//        //设置饼状图各部分颜⾊，此处需要注意colors的顺序与List<PieEntry>顺序保持⼀致
//        dataSet.setColors(getColor(R.color.black),getColor(R.color.purple_200));
//        //3.设置饼图数据
//        PieData pieData = new PieData(dataSet);
//        //是否显示饼图每部分具体数值
//        pieData.setDrawValues(true);
//        //设置数据，开始绘制饼图
//        pieChart.setData(pieData);
//        pieChart.invalidate();
//
//        //1.设置饼状图内容，注意饼状图总数尽量保证100%，即PieEntry(百分⽐, 内容名称)
//        List<PieEntry> sst = new ArrayList<>();
//        sst.add(new PieEntry(30f,"aaa"));
//        sst.add(new PieEntry(70f,"bbb"));
//        //2.设置饼状图描述
//        PieDataSet dataSet1=new PieDataSet(sst,"Label");
//        //设置饼状图各部分颜⾊，此处需要注意colors的顺序与List<PieEntry>顺序保持⼀致
//        dataSet1.setColors(getColor(R.color.black),getColor(R.color.purple_200));
//        //3.设置饼图数据
//        PieData pieData1 = new PieData(dataSet);
//        //是否显示饼图每部分具体数值
//        pieData1.setDrawValues(true);
//        //设置数据，开始绘制饼图
//        pieChart.setData(pieData);
//        pieChart.invalidate();
//    }
    private void initbar(){
        BarChart barChart=findViewById(R.id.bar_chat);
        barChart.getDescription().setEnabled(true); //是否隐藏描述
        //配置描述
        Description description = new Description();
        description.setText("柱状图统计");//设置右下⻆的描述信息
        description.setTextSize(14f);//设置描述信息字体⼤⼩
        barChart.setDescription(description);
        barChart.setNoDataText("暂⽆数据"); //设置空表的描述信息
        barChart.setDrawGridBackground(false);//是否绘制⽹格背景
        barChart.setDrawValueAboveBar(true);//将Y数据显示在点的上⽅
        barChart.setPinchZoom(true);//是否⽀持挤压缩放
        barChart.setDrawBarShadow(false);//是否显示柱阴影
        barChart.setDrawGridBackground(false);//是否显示⽹格背景
        barChart.setDoubleTapToZoomEnabled(false);//是否⽀持双击缩放
        barChart.animateY(1500);//柱状图展示时动画时⻓
        //创建柱数据组
        ArrayList<BarEntry> entries = new ArrayList<BarEntry>();
        //创建柱数据名称组
        ArrayList<String> xVals = new ArrayList<String>();
        //构造柱具体数据
        BarEntry barEntry = new BarEntry(0,10);
        xVals.add("数据1");
                entries.add(barEntry);
        BarEntry barEntry1 = new BarEntry(1,11);
        xVals.add("数据2");
        entries.add(barEntry1);
        BarEntry barEntry2 = new BarEntry(2,12);
        xVals.add("数据3");
        entries.add(barEntry2);
        BarEntry barEntry3 = new BarEntry(3,10);
        xVals.add("数据4");
        entries.add(barEntry3);
        //获取X轴，配置X轴数据
        XAxis xAxis = barChart.getXAxis();
        //设置X周围为底部
        xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
        //不绘制背景⽹格
        xAxis.setDrawGridLines(false);
        //设置x轴的数据，配置数据显示格式
        DefaultAxisValueFormatter formatter = new DefaultAxisValueFormatter(4);
        xAxis.setValueFormatter(formatter);

        //显示个数
        xAxis.setLabelCount(xVals.size());
        BarDataSet dataSet = new BarDataSet(entries, "柱状图统计");
        //数据和颜⾊
        ArrayList<Integer> colors = new ArrayList<Integer>();
        // 柱状图颜⾊，此处可以设置多个不同⾊值
        colors.add(Color.rgb(44,120,221));
        dataSet.setColors(colors);
        ArrayList<IBarDataSet> dataSets = new ArrayList<IBarDataSet>();
        dataSets.add(dataSet);
        //设置柱状图配置数据（数据、颜⾊等）
        BarData bardata = new BarData(dataSets);
        bardata.setDrawValues(true);
        //设置⽂本显示样式
        bardata.setValueTextColor(Color.BLACK);
        bardata.setValueTextSize(13);
        barChart.setData(bardata);
        barChart.animateXY(800,800);//图表数据显示动画
        barChart.setVisibleXRangeMaximum(15);//设置屏幕内显示条数
        //刷新显示
        barChart.invalidate();
    }
}